// task_tracker.h
#ifndef TASK_TRACKER_H
#define TASK_TRACKER_H

#include <stdint.h>  // 确保 uint32_t 等类型可用

// 任务响应状态枚举
typedef enum {
    TASK_RESPONSE_IDLE,           // 空闲状态
    TASK_RESPONSE_WAITING,        // 等待飞控确认中
    TASK_RESPONSE_GUIDE_OK,       // 航点GPS确认成功
    TASK_RESPONSE_MISSION_OK,     // 航线上传确认成功
    TASK_RESPONSE_ALL_OK          // 全部确认成功
} task_response_state_t;


// 任务响应跟踪结构
typedef struct {
    bool is_waiting;              // 是否正在等待取消装订响应
    uint16_t task_code;           // 待响应的任务代码
    uint16_t target_id;           // 目标ID
    bool guide_ack_received;      // 是否收到航点GPS确认
    bool mission_ack_received;    // 是否收到航线上传确认
    bool guide_success;           // 航点GPS是否成功
    bool mission_success;         // 航线上传是否成功
    uint32_t timeout_timer;       // 超时计时器
    task_response_state_t state;  // 当前状态
} task_response_tracker_t;

extern task_response_tracker_t task_tracker;  // 声明全局变量

#endif